﻿#include "MyString.h"
////默认函数
//int main()
//{
//	
//	string s1;
//	string s2("Hello");
//	cout << s2 << endl;
//
//	string s3(s2, 1);
//	cout << s3 << endl;
//
//	string s4("SLOW", 3);
//	cout << s4 << endl;
//
//	return 0;
//}

//遍历和访问

//int main()
//{
//	string s1("Xiaomi Honor");
//
//	////下标遍历
//	//size_t i = 0;
//	//for (i = 0; i < s1.size(); i++)
//	//{
//	//	cout << s1[i] << "|";
//
//	//}
//	//cout << endl;
//	////逆置1
//	//size_t begin = 0, end = s1.size() - 1;
//	//while (begin < end)
//	//{
//	//	swap(s1[begin], s1[end]);
//	//	++begin;
//	//	--end;
//	//}
//
//	cout << s1 << endl;
//	//迭代器遍历
//	string::iterator it = s1.begin();
//	while (it != s1.end())
//	{
//		cout << *it << '-';
//		it++;
//	}
//	cout << endl;
//	reverse(s1.begin(), s1.end());
//	cout << s1 << endl;
//	////迭代器遍历
//	//const string s2 = s1;
//	//string::const_iterator it2 = s2.begin();
//	//while (it2 != s2.end())
//	//{
//	//	cout << *it2 << '-';
//	//	it2++;
//	//}
//	
//	//
//	vector<int> v;
//	v.push_back(1);
//	v.push_back(2);
//	v.push_back(3);
//	v.push_back(4);
//	vector<int>::iterator it1 = v.begin();
//	while (it1 != v.end())
//	{
//		cout << *it1 << "-";
//		it1++;
//	}
//	cout << endl;
//	//
//	list<double> l;
//	l.push_back(1.2);
//	l.push_back(1.6);
//	l.push_back(9.2);
//	l.push_back(8.2);
//
//	list<double>::iterator it2 = l.begin();
//	while (it2 != l.end())
//	{
//		cout << *it2 << "-";
//		it2++;
//	}
//	cout << endl;
//	reverse(l.begin(), l.end());
//
//	it2 = l.begin();
//	while (it2 != l.end())
//	{
//		cout << *it2 << "-";
//		it2++;
//	}
//	cout << endl;
//
//	return 0;
//}

//int main()
//{
//	int a = 1, b = 5;
//	swap(a, b);
//	//cout << a << endl;
//	//cout << b << endl;
//
//	return 0;
//}


//int main(void)
//{
//	string s1("Max");
//	cout << "初始容量" << s1.capacity() << endl;
//	size_t init_cp = s1.capacity();//初始的容量
//
//	size_t i = 0;
//	for (i = 0; i < 500; i++)
//	{
//		s1.push_back('x');
//		if (s1.capacity() != init_cp)
//		{
//			cout << "发生了扩容，当前容量" << s1.capacity() << endl;
//			init_cp = s1.capacity();
//		}
//	}
//	return 0;
//}
//
//int main()
//{
//	string s1;
//	cout << s1.capacity() << endl;
//	s1.reserve(10);//这句代码表示你想把容量设置为10
//	cout << s1.capacity() << endl;
//
//
//	string s2("Maxnap");
//	cout << s2 <<  endl;
//	cout << s2.capacity() <<  endl;
//	s2.reserve(100);
//	cout << s2.capacity() << endl;
//	return 0;
//}


//int main()
//{
	/*string s1("Maxnap and Kk");
	cout << "容量" << s1.capacity() << endl;
	cout << "大小" << s1.size() << endl;
	cout << s1 << endl;

	s1.resize(90, 'x');
	cout << "容量" << s1.capacity() << endl;
	cout << "大小" << s1.size() << endl;
	cout << s1 << endl;*/
	//cout << s1 << endl;*/
	//string s1("Maxnap");
	//cout << "容量" << s1.capacity() << endl;
	//cout << "大小" << s1.size() << endl;
	//cout << s1 << endl;

	//s1.resize(2, 'x');
	//cout << "容量" << s1.capacity() << endl;
	//cout << "大小" << s1.size() << endl;
	//cout << s1 << endl;
	/*return 0;
}*/

//int main()
//{
//	try
//	{
//		string s1("hello world");
//		//cout << s1[11] << endl;
//		//cout << s1[20] << endl;
//
//		cout << s1.at(20) << endl;	
//	}
//	catch (const exception& e)
//	{
//		cout << e.what() << endl;
//	}
//
//	return 0;
//}

//
//int main()
//{
//	//string s1;
//	//s1.push_back('l');
//	//string s2 = "love is awake";
//	////s1.append(s2);
//	////s1.append(++s2.begin(), s2.end());
//	////s1 += s2;
//	//s1 += "ove";
//
//	//cout << s1 << endl;
//	string s1 = "Mad";
//	cout << s1 << endl;
//
//	s1.insert(0, 1, 'c');
//	cout << s1 << endl;
//	return 0;
//}

//int main()
//{
//	/*string s1 = "Madnap";
//	cout << s1 << endl;
//	s1.erase(3);
//	cout << s1 << endl;*/
//	string s1;
//	s1.assign("Madnap");
//	cout << s1 << endl;
//	string s2;
//	s2.assign(s1, 0, 3);
//	cout << s2 << endl;
//
//
//	return 0;
//}

//int main()
//{
//	string s1 = "Madnap is singer";
//	//把空格替换为'-'
//	size_t pos = s1.find(' ', 0);
//	while (pos != string::npos)
//	{
//		s1.replace(pos, 1, "-");
//		pos = s1.find(' ', pos + 1);
//	}
//	cout << s1 << endl;
//	//法2
//	string s2 = "Slow down is possesed by Madnap";
//	string s3;
//
//	for (auto ch : s2)
//	{
//		if (ch ==' ')
//		{
//			s3 += '-';
//		}
//		else
//		{
//			s3 += ch;
//		}
//	}
//	s2.swap(s3);
//	cout << s2 << endl;
//	cout << s3 << endl;
//
//	return 0;
//}

//int main()
//{
//	string s1 = "test.cpp";
//	FILE* pf = fopen(s1.c_str(), "r");
//	char ch = fgetc(pf);
//	while (ch != EOF)
//	{
//		cout << ch;
//		ch = fgetc(pf);
//	}
//	return 0;
//}

//int main()
//{
//	//题目1，要求找出后缀
//	string s1 = "test.cpp";//后缀为.cpp
//	string s2 = "head.tar.zip";//后缀为.zip
//
//	size_t pos1 = s1.find('.', 0);
//	if (pos1 != string::npos)
//	{
//		string suffix = s1.substr(pos1);
//		cout << suffix << endl;
//	}
//	size_t pos2 = s2.rfind('.', s2.size());
//	if (pos2 != string::npos)
//	{
//		string suffix2 = s2.substr(pos2);
//		cout << suffix2 << endl;
//	}
//	//题目2，要求分割出网址的协议，域名，路径
//	string s3 = "https://fanyi.youdao.com/index.html#/";
//	string agremt;//协议
//	size_t posAgremt = s3.find(':', 0);
//	if (posAgremt != string::npos)
//	{
//		agremt = s3.substr(0, posAgremt - 0);
//		cout << agremt << endl;
//	}
//	string daname;//域名
//	size_t posdaname = s3.find('/', posAgremt + 3);
//	if (posdaname != string::npos)
//	{
//		daname = s3.substr(posAgremt + 3, posdaname - (posAgremt + 3));
//		cout << daname << endl;
//	}
//	string path;
//	path = s3.substr(posdaname + 1);
//	cout << path << endl;
//	return 0;
//
////}
//int main()
//{
//	char arr[10];
//	string s1 = "Madnap";
//	s1.copy(arr, 5, 0);
//	cout << s1 << endl;
//
//	puts(arr);
//
//	return 0;
//}
//int main()
//{
//	string s1 = "what happend fuck you,oh,shit,shut up";
//	const char* arr = "fuck";
//
//	size_t pos = s1.find(arr, 0);
//	while (pos != string::npos)
//	{
//		s1[pos] = 'x';
//		pos = s1.find(arr, pos + 1);
//	}
//	cout << s1 << endl;
//	return 0;
//}

//int main()
//{
//	/*string s1;
//	cin >> s1;
//	cout << s1 << endl;*/
//	string s1;
//	getline(cin, s1);
//	cout << s1 << endl;
//
//}


//int main()
//{
//	ljy::test_string4();
//	/*string s1(nullptr);
//	cout << s1 << endl;*/
//
//	string s1 = to_string(133);
//	cout << s1 << endl;
//
//	return 0;
//}

int main()
{
	string s1;
	cout << sizeof(s1) << endl;
	string s2("1234");
	cout << sizeof(s2) << endl;
}